import org.junit.Test;
import sun.management.snmp.jvmmib.JVM_MANAGEMENT_MIBOidTable;

import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapters;
import java.util.Arrays;

/**
 * 程序只有一个入口：main方法   程序入口
 * 理解：类中只有一个主方法
 *
 * 类中多个类似主方法：单元测试  Junit1.4【外置jar包】
 *                         jar  别人写好的类，直接使用
 * 单元测试：专门测试功能模块
 * 单元测试步骤：
 * 1，填写注释    @7est 编写单元测试
 * 2，编写方法    修饰符 返回值 方法名（）{}
 *
 */
public class 基础语法 {
    /**
     * float  单精度   不常用  4字节   取小数点后6位有效数
     * 写法：float  标识符=字面量F/f；
     */
    @Test
    public void basic() {
        float pi = 3.1415926535F;
        System.out.println(pi); //3,1415927;
        int a = 128 + 256;
        byte b = (byte) a;
        System.out.println(b);//-128
        //    int _123F=1;
        //   int 123F=1;
        //    int if=1;
        String name = "丰年";
        int age = 18;
        System.out.println(name + age);
    }

    /**
     * 数组Array   引用类型      对象，通过new创建
     * 数组相对于一堆相同”数据”集合
     * 单元测试:testArray   创建数组以及初始化过程
     */
    @Test
    public void testArray() {
        //创建arr空数组，长度4
        int[] arr = new int[4]; //动态初始化，指定空间，并且按照空间分元素
        int[] arr1 = {1, 2, 3}; //静态初始化：直接给定值
        int arr2[] = new int[4]; //动态初始化:指定空间，并且按照空间分元素
        int[] arr3 = new int[]{1, 2, 3}; //动态初始化:指定空间，并且按照空间分元素
        //从arr1静态初始化数组获取  2  元素    数组名[下标：0开始]
        System.out.println(arr1[1]); //输出  2  元素
        //从arr1静态初始化数组获取  长度
        System.out.println(arr1.length); //输出3
        //从arr1 获取下标为4的值    输出？  数组下标越线异常
       // System.out.println(arr1[4]); //ArrayIndexOutOfBoundsException
        //空间长度没有超过范围，数据类型，基础数据类型
        //                    int  默认值   0
        //                    flood 默认值  0
        //                    char 默认值   0
        //                    Boolean 默认值  false
        int[]arr4=new int[4];//动态初始化:指定空
        System.out.println(arr4[1]);
        float[] arr5=new float[4];
        System.out.println(arr5[1]);
        char[] arr6=new char[4];
        System.out.println(arr6[1]);
        boolean[] arr7=new boolean[4];
        System.out.println(arr7[1]);
    }
    /**
     * 数据遍历【3种迭代方式】
     * 1，普遍for jdk1.5之前
     * 2，增强for jdk1.5之后使用  推荐
     * 3，工具类 推荐
     */
    @Test
    public void testIterate() {
        int[] arr = {1, 2, 3, 4};  //静态数组
//        for(int i=0;i<arr.length;i++){  //获取数组的下标
//            System.out.println(arr[i]);
//     }
        //遍历数据类型   引用名：数组名
        //  for(int i:arr){ //直接打印元素值
        //    System.out.println(i);

        // }

        //工具类 toString方法  打印所有数组元素
        System.out.println(Arrays.toString(arr));

    }
        /**
         * Java数组对象大小是固定的，数组对象不可以展的
         * 使用数据扩容方式变通
         * Arrays.copyOf()方法创建数组副本
         */
        @Test
        public void testCopy(){
            char[] arr={'唐','山'}; //定义数据，长度固定
            char[] temp= Arrays.copyOf(arr,4);
        }


}

